草庐IT

c++ - WinAPI : Add style to combo box

全部标签

c++ - 为什么 Direct3D 没有自己的顶点结构?

我一直想知道为什么我们必须始终定义D3DVERTEX背后的原因。是因为微软想允许有机会把它放在一个类中并重载运算符,还是有其他原因?谢谢 最佳答案 这样您就可以使用对您的应用程序方便的任何内容。如果你需要法线作为顶点的一部分,你可以拥有它。如果不需要法线,则每个顶点可节省12个字节。如果您需要颜色信息、纹理坐标、高光参数等,您可以根据您的具体需要选择是否定义它们。如果Microsoft提供“D3DVERTEX”结构,您要么拥有500个不同的版本,具有不同的字段组合,要么您拥有一个包含所有可能值的巨大版本,这会占用您的带宽。

c++ - scanf/字段长度 : using a variable/macro, C/C++

如何在使用scanf时使用变量来指定字段长度。例如:charword[20+1];scanf(file,"%20s",word);此外,使用20+1是否正确(因为它需要在末尾添加\0?)。相反,我想要这样的东西:#defineMAX_STRING_LENGTH20然后charword[MAX_STRING_LENGTH+1];scanf(file,"%"MAX_STRING_LENGTH"s",word);//what'sthecorrectsyntaxhere..?这可能吗?如果它是一个变量怎么样:intlength=20;charword[length+1];scanf(file,

c++ - 如何获取具有 FILE* 的文件名?

在我的类中,我有FILE*ascii_file;数据成员,它总是通过类构造函数初始化。如何获得asci_file的完整路径?我不想存储有关文件的更多信息,expectascii_file,并希望它在windows、linux和solaris上工作。 最佳答案 此任务将需要不可移植的代码。在Windows上,您可以使用_fileno将FILE*转换为CRT文件描述符,然后使用_get_osfhandle转换为操作系统句柄.然后就可以得到如图所示的文件名here(使用文件映射)。ObtainingaFileNameFromaFileHa

c++ - 在当前进程中 Hook API 调用?

如何Hook/重定向当前进程中加载​​的DLL中的函数(例如,来自Kernel32.dll的CreateThread)?(我无法控制哪些代码片段调用CreateThread,所以我不能只用其他代码来代替。)语言并不重要;我猜C/C++是最好的选择。更新:我忘了说:我不是在寻找需要将额外库捆绑到我的程序中的解决方案;我一直在寻找一种手动方式来进行Hook(例如通过重写函数的地址),而不是使用外部库来执行此操作。但是感谢那些提到外部库的人;抱歉,我没有早点说。 最佳答案 有用于此的MS库:Detours

java - 任何人都可以解释 C C++ Java 关于动态或静态语言

任何人都可以解释CC++Java关于动态类型或静态类型语言。我在某处看到,CC++和Java都是静态语言。但我记得还有其他关于这些的意见。很困惑。谢谢! 最佳答案 还有什么意见?毫无疑问,C、C++和Java都是静态类型的语言,C++和Java具有一些动态类型的特性。还有另一个问题:强类型与弱类型,这主要与隐式转换和重载有关。网上有许多对这些问题的深入讨论;你可能想从http://en.wikipedia.org/wiki/Type_system开始 关于java-任何人都可以解释CC+

c++ - 获取磁盘转速示例代码

我不太擅长VC++,但有没有人有示例代码来获取计算机中磁盘的转速。我一直致力于检测SSD驱动器,整天研究的一个解决方案是获取转速,因为SSD的转速为0rpm,这可能是检测SSD驱动器的唯一方法。 最佳答案 来自googlewmissddetectThereisanNVcachemanagerinterfaceusedforReadyDrivewhichisnewtoVista.IthinkitistestingNV_FEATURE_PARAMETER'sNVReadSpeedandNVWrtSpeedvalues.Windows7d

c++ - gets() 正式弃用了吗?

这个问题在这里已经有了答案:Whyisthegetsfunctionsodangerousthatitshouldnotbeused?(13个答案)关闭去年。基于mostrecentdraft对于C++11,C++引用ISO/IEC9899:1999/Cor.3:2007(E)以了解C库函数的定义(根据§1.2[intro.refs]/1)。基于mostrecentdraft在C99TC3中,gets函数已过时,已弃用。(根据§7.26.9/2)我可以肯定地说gets()在C和C++中都被弃用了吗?

c++ - 相当于缓冲区上的 fgets?

我最初使用fgets()逐行解析文件。现在我改变了一些东西,所以我已经把我的整个文件放在一个缓冲区里了。我仍然喜欢逐行读取该缓冲区以进行解析。是否有为此设计的东西,或者我是否需要制作一个循环来检查此时的0x0Achar? 最佳答案 memchr(有一点你自己的包装代码,以memcpy结尾)是完全等价的-像fgets它需要一个它将处理的最大长度(应该是剩余输入缓冲区大小和输出缓冲区大小的最小值)并扫描直到它找到所需的字符(将是'\n')或运行输入/输出空间不足。请注意,对于已经在内存缓冲区中的数据,您可能希望跳过复制到单独输出缓冲区的

c++ - 是否有从代码库中删除第三方 C 和 C++ 库的好技巧或工具? (OS X 或 Linux)

我正在减少和隔离我对某些库的使用。我编写的许多现有程序直接使用这些库。我想要编译器(在这种情况下是GCC和/或Clang)或一些工具来帮助我在我的代码库中识别这些用途。简而言之,我想在整个代码库中毒害这些库的使用,除了它们将由一个库使用,并且一个库将对我的代码库中的其他模块可见。问题:1)你知道可以帮助我解决这个问题的工具吗?2)或者你能推荐一些策略来使这个过程更容易吗?条件和详情:删除它们的包含不是一种选择。由于我的代码库的大小和我想要隔离的符号数量,搜索无效。考虑到代码库的复杂性和要删除的符号数量,使用重构工具将过于乏味。由于第三方库中声明的数量,单独弃用符号不是一种选择。第三方库

c++ - 外部关键字 "missing type specifier"

我正在使用VisualC++Express创建一个DLL,并且在声明时externValveInterfaces*VIFace在Required.h中,编译器告诉我ValveInterfaces没有定义。(我想将VIFace暴露给任何文件,包括Required.h)这是我的文件结构:DLLMain.cpp#include"Required.h"//requiredheaderfiles,suchasWindows.handtheSDKValveInterfaces*VIFace;//therestofthefileRequired.h#pragmaonce//includeWindow